import Vue from 'vue'
const state = {
	cartList: [
		// {
		// 	"selected":false,
		// 	"count":2,
		//     "promId": 0,
		//     "showPoints": false,
		//     "itemTagList": [
		//         {
		//             "itemId": 1535004,
		//             "tagId": 128111157,
		//             "freshmanExclusive": false,
		//             "name": "暖冬特惠",
		//             "subType": 204,
		//             "forbidJump": false,
		//             "type": 2
		//         }
		//     ],
		//     "rank": 1,
		//     "id": 1535004,
		//     "sellVolume": 4001,
		//     "primaryPicUrl": "https://yanxuan-item.nosdn.127.net/f79906f1b1fe86420ea40473de66ec0e.png",
		//     "soldOut": false,
		//     "sortFlag": 0,
		//     "commentCount": 0,
		//     "onSaleTime": 1538101761748,
		//     "picMode": 1,
		//     "commentWithPicCount": 0,
		//     "underShelf": false,
		//     "status": 2,
		//     "couponConflict": true,
		//     "forbiddenBuy": false,
		//     "promotionDesc": "暖冬特惠",
		//     "limitedFlag": 204,
		//     "pieceNum": 0,
		//     "itemSizeTableDetailFlag": false,
		//     "forbidExclusiveCal": false,
		//     "rewardShareFlag": false,
		//     "updateTime": 1575893634989,
		//     "showCommentEntrance": true,
		//     "pieceUnitDesc": "件",
		//     "specialPromTag": "",
		//     "counterPrice": 299,
		//     "categoryL2Id": 0,
		//     "retailPrice": 209,
		//     "primarySkuPreSellPrice": 0,
		//     "preLimitFlag": 0,
		//     "itemPromValid": true,
		//     "promTag": "暖冬特惠",
		//     "source": 0,
		//     "points": 0,
		//     "primarySkuPreSellStatus": 0,
		//     "extraServiceFlag": 0,
		//     "flashPageLink": "",
		//     "autoOnsaleTimeLeft": 0,
		//     "innerData": {},
		//     "saleCenterSkuId": 0,
		//     "pointsStatus": 0,
		//     "extraPrice": "",
		//     "colorNum": 0,
		//     "showTime": 0,
		//     "autoOnsaleTime": 0,
		//     "preemptionStatus": 1,
		//     "isPreemption": 0,
		//     "zcSearchFlag": false,
		//     "name": "男式色拉姆内衣套装2.0",
		//     "appExclusiveFlag": false,
		//     "itemType": 1,
		//     "listPicUrl": "https://yanxuan-item.nosdn.127.net/c2eeb1b872af1b8efc179a7515aacdaa.png",
		//     "pointsPrice": 0,
		//     "simpleDesc": "色拉姆发热面料，加厚升级",
		//     "seoTitle": "",
		//     "newItemFlag": false,
		//     "buttonType": 0,
		//     "primarySkuId": 1636062,
		//     "displaySkuId": 1636056,
		//     "productPlace": "",
		//     "itemSizeTableFlag": false
		// },
		// {
		// 	"selected":true,
		// 	"count":1,
		//     "promId": 0,
		//     "showPoints": false,
		//     "itemTagList": [
		//         {
		//             "itemId": 1536001,
		//             "tagId": 128111157,
		//             "freshmanExclusive": false,
		//             "name": "暖冬特惠",
		//             "subType": 204,
		//             "forbidJump": false,
		//             "type": 2
		//         }
		//     ],
		//     "rank": 1,
		//     "id": 1536001,
		//     "sellVolume": 3634,
		//     "primaryPicUrl": "https://yanxuan-item.nosdn.127.net/32b8b2d07b1c4327593a4a70993eeac2.png",
		//     "soldOut": false,
		//     "sortFlag": 0,
		//     "commentCount": 0,
		//     "onSaleTime": 1538101896296,
		//     "picMode": 1,
		//     "commentWithPicCount": 0,
		//     "underShelf": false,
		//     "status": 2,
		//     "couponConflict": true,
		//     "forbiddenBuy": false,
		//     "promotionDesc": "暖冬特惠",
		//     "limitedFlag": 204,
		//     "pieceNum": 0,
		//     "itemSizeTableDetailFlag": false,
		//     "forbidExclusiveCal": false,
		//     "rewardShareFlag": false,
		//     "updateTime": 1575894115275,
		//     "showCommentEntrance": true,
		//     "pieceUnitDesc": "件",
		//     "specialPromTag": "",
		//     "counterPrice": 299,
		//     "categoryL2Id": 0,
		//     "retailPrice": 209,
		//     "primarySkuPreSellPrice": 0,
		//     "preLimitFlag": 0,
		//     "itemPromValid": true,
		//     "promTag": "暖冬特惠",
		//     "source": 0,
		//     "points": 0,
		//     "primarySkuPreSellStatus": 0,
		//     "extraServiceFlag": 0,
		//     "flashPageLink": "",
		//     "autoOnsaleTimeLeft": 0,
		//     "innerData": {},
		//     "saleCenterSkuId": 0,
		//     "pointsStatus": 0,
		//     "extraPrice": "",
		//     "colorNum": 0,
		//     "showTime": 0,
		//     "autoOnsaleTime": 0,
		//     "preemptionStatus": 1,
		//     "isPreemption": 0,
		//     "zcSearchFlag": false,
		//     "name": "女式色拉姆内衣套装2.0",
		//     "appExclusiveFlag": false,
		//     "itemType": 1,
		//     "listPicUrl": "https://yanxuan-item.nosdn.127.net/02b61fb5700aed6761b7524d98ed0837.png",
		//     "pointsPrice": 0,
		//     "simpleDesc": "色拉姆发热面料，加厚升级",
		//     "seoTitle": "",
		//     "newItemFlag": false,
		//     "buttonType": 0,
		//     "primarySkuId": 1634105,
		//     "displaySkuId": 1634104,
		//     "productPlace": "",
		//     "itemSizeTableFlag": false
		// }
		
	]
}
const mutations = {
	addShopItemMutation(state,good){
		console.log(good);
		//查询购物车列表中是否已存在准备新增的商品

		let shopItem = state.cartList.find(shopItem=>{return shopItem.id === good.id})
		if(shopItem){
			////如果购物车中已存在,只需要将他的数量+1
			shopItem.count++
		}else{
			//如果购物车中不存在,给商品对象添加属性count,设置初始值为1,并添加至购物车列表中
			// good.count = 1
			//给新增的商品对象，添加设置响应式属性count
			Vue.set(good,"count",1)
			Vue.set(good,"selected",true)
			state.cartList.push(good)
		}

	},
	changeShopItemCountMutation(state,{type,index}){
		/*需求:当用户点击+/-按钮时,去修改对应商品的数量
		拆解需求:
		1.绑定监听->监视用户点击操作
		2.区分点的到底是+还是-,+就是数量+1,-就是数量-13.通过点击计数器找到对应的商品,并修改数量
			1)+没有限制
			2)-的情况,如果-1之后,不小于1,正常--
			如果-1之后,小于1,直接从购物车中删除

		*/
	   let shopItem = state.cartList[index];
		if (type) {
			shopItem.count++
		} else{
			if(shopItem.count>1){
				shopItem.count--
			}else{
				state.cartList.splice(index,1)
			}
		}
	},
	changeShopItemSelectedMutation(state,{selected,index}){
		
		// 需求:当用户点击选中按钮,将对应商品的选中状态进行修改
		
	   let shopItem = state.cartList[index]
	   shopItem.selected = selected
	   
	},
	changeSelectedAllMutation(state,selected){
		/*
			需求:当用户点击全选按钮时,改变所有商品选中状态(根据当前全选按钮的情况取反)拆分需求:
			1)当用户点击->监听
			2)获取到当前全选按钮的状态,并且取反(得到状态a)
			3)将所有商品的状态设置为a
	
		*/
	   state.cartList.forEach(item=>{item.selected=selected})
	   
	}
}
const actions = {
	
}
const getters = {
	isSelectedAll(state){ 
	/*
	需求:
	1)当购物车中没有商品,全选按钮应该是未选中状态
	2)当购物车中所有商品都是选中状态,全选按钮应该也是选中状态
	3)当购物车中有部分商品未选中,全选按钮应该是未选中状态
	4)返回值类型:布尔值
	5)书写位置:getter
	
		every->所有的元素都满足条件,返回值就是true,只要有一个不满足,结果就是false
		some->只要有一个元素满足条件,返回值就是true,反之,则是false
	*/
		let {cartList} = state
		if(cartList.length===0) return false 
		let result = cartList.every(item=>item.selected)
		return result
	} ,
	AllNumAndMoney(){
		let {cartList} = state
		let NumAndMoney = {
			count: 0,
			money: 0
		}
		if(cartList.length===0) return NumAndMoney
		let result = cartList.forEach(item=>{
			if(item.selected){
				NumAndMoney.count++
				if(item.count>1){
					NumAndMoney.money+=item.retailPrice*item.count
				}else{
					NumAndMoney.money+=item.retailPrice
				}
			}
		})
		return NumAndMoney
	}

   
}
export default{
	state,
	mutations,
	actions,
	getters
}